package org.springframework.zp.autowired.multiple;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 此时是按照 对应实现类的 bean name 申明依赖的
 */
@Slf4j(topic = "e")
@Component("a")
public class MultipleAutowiredTest {
	/**
	 * 此时是按照 对应实现类的 bean name 申明依赖的
	 */
	@Autowired
	IAnnotationAutowiredInterface aAnnotationAutowiredImpl;

	/**
	 * 此时是按照 对应实现类的 bean name 申明依赖的
	 */
	@Autowired
	IAnnotationAutowiredInterface bAnnotationAutowiredImpl;

	public void printf() {
		log.info("[printf],输出 @Autowired 引入的类信息 begin");
		/**
		 * 通过日志会发现输出的是 两个不同的类 按照 对应实现类的 bean name 申明依赖的 会分别导入各自的实现类
		 */
		log.info("###### a aAnnotationAutowiredImpl=[{}]", aAnnotationAutowiredImpl);
		log.info("###### b bAnnotationAutowiredImpl=[{}]", bAnnotationAutowiredImpl);
		log.info("[printf],输出 @Autowired 引入的类信息 end");
	}

}
